/*
 * tipos.h
 *
 *  Created on: 21/09/2011
 *      Author: enikolas
 */

#ifndef TIPOS_H_
#define TIPOS_H_

#include <stdint.h>
#include <iostream>
#include <stdlib.h>
#include <cmath>
#include <time.h>
typedef uint64_t tipoTabuleiro;

namespace GoKnightEnum {

	const int NUM_CASAS = 64;

	enum Casa {
		A1, B1, C1, D1, E1, F1, G1, H1,
		A2, B2, C2, D2, E2, F2, G2, H2,
		A3, B3, C3, D3, E3, F3, G3, H3,
		A4, B4, C4, D4, E4, F4, G4, H4,
		A5, B5, C5, D5, E5, F5, G5, H5,
		A6, B6, C6, D6, E6, F6, G6, H6,
		A7, B7, C7, D7, E7, F7, G7, H7,
		A8, B8, C8, D8, E8, F8, G8, H8,
		CASA_INVALIDA
	}; // enum Casa

	const int NUM_PECAS = 6;

	enum Peca {
		PEAO, CAVALO, BISPO, TORRE, DAMA, REI, PECA_INVALIDA
	}; // enum Peca

	enum Cor {
		BRANCAS, NEGRAS, AMBAS
	}; // enum Cor

	const int NUM_LINHAS_COLUNAS = 8;

	enum Linha {
		LINHA_1, LINHA_2, LINHA_3, LINHA_4, LINHA_5, LINHA_6, LINHA_7, LINHA_8
	}; // enum Linha

	enum Coluna {
		COLUNA_A, COLUNA_B, COLUNA_C, COLUNA_D, COLUNA_E, COLUNA_F, COLUNA_G, COLUNA_H
	}; // enum Coluna

	const int NUM_DIRECOES = 8;

	enum Direcao {
		NO_OE = 7,
		NORTE = 8,
		NO_LE = 9,
		LESTE = 1,
		SU_LE = -7,
		SUL = -8,
		SU_OE = -9,
		OESTE = -1
	};

}  // namespace name

#endif /* TIPOS_H_ */
